pub async fn detect_distro() -> Result<String, String> {
    let os_release = fs::read_to_string("/etc/os-release")
        .map_err(|e| e.to_string())?;
    
    for line in os_release.lines() {
        if line.starts_with("ID=") {
            return Ok(line.split('=').nth(1).unwrap().trim_matches('"').to_lowercase());
        }
    }
    Err("Cannot detect distribution".into())
}